// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); 1win Casino and Sportsbook Bangladesh – Free Spins & Sports Betting Promotions – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

1win Casino and Sportsbook Bangladesh – Free Spins & Sports Betting Promotions

Are you ready to experience the ultimate thrill of online gaming in Bangladesh? Look no further than 1win, the premier online casino and sportsbook that offers an unparalleled gaming experience. With its user-friendly 1win app, you can access a wide range of games, including slots, table games, and live dealer games, as well as a vast array of sports betting options.

At 1win, you can enjoy a variety of promotions and bonuses, including free spins and sports betting promotions. The 1win casino offers a range of slots, including popular titles like Book of Dead and Gonzo’s Quest, as well as classic table games like blackjack and roulette. The 1win sportsbook, on the other hand, offers a wide range of sports, including football, cricket, and tennis, with competitive odds and a user-friendly interface.

But that’s not all – 1win also offers a range of exclusive promotions and bonuses, including welcome bonuses, reload bonuses, and cashback offers. And with the 1win app, you can access all of these features and more on the go, from the comfort of your own home or on the move.

So why wait? Sign up for 1win today and start experiencing the thrill of online gaming in Bangladesh. With its user-friendly interface, wide range of games, and exclusive promotions, 1win is the perfect choice for anyone looking to take their gaming experience to the next level. And with the 1win login feature, you can access your account from anywhere, at any time.

But don’t just take our word for it – try 1win out for yourself. With its 1win app download available for both iOS and Android devices, you can start playing in just a few clicks. And with the 1win aviator game, you can experience the thrill of online gaming like never before. So what are you waiting for? 1win is the perfect choice for anyone looking for a fun and exciting online gaming experience in Bangladesh.

So, don’t miss out on the opportunity to experience the best of online gaming in Bangladesh. Sign up for 1win today and start enjoying the thrill of online gaming. With its 1win bangladesh platform, you can access a wide range of games, including slots, table games, and live dealer games, as well as a vast array of sports betting options. And with the 1win apk download available for both iOS and Android devices, you can start playing in just a few clicks.

So, what are you waiting for? 1win is the perfect choice for anyone looking for a fun and exciting online gaming experience in Bangladesh. Sign up today and start enjoying the thrill of online gaming with 1win.

What is 1win Casino and Sportsbook?

1win is a popular online casino and sportsbook that has gained immense popularity in Bangladesh and other parts of the world. The platform offers a wide range of games, including slots, table games, and live dealer games, as well as a sportsbook for betting on various sports and events.

The 1win app is available for download on both iOS and Android devices, allowing users to access the platform on-the-go. The 1win login process is simple and straightforward, requiring only a few steps to get started. Once logged in, users can access a wide range of features, including the 1win aviator game, which is a popular choice among players.

One of the key benefits of 1win is its user-friendly interface, which makes it easy for new players to navigate and find their favorite games. The platform is also available in multiple languages, including Bengali, making it accessible to a wider audience.

In addition to its gaming options, 1win also offers a range of promotions and bonuses, including free spins and deposit matches. The 1win casino is also known for its high-quality games, which are provided by top software providers in the industry.

For sports enthusiasts, 1win offers a comprehensive sportsbook with a wide range of sports and events to bet on. The platform also offers live betting options, allowing users to place bets in real-time.

In conclusion, 1win is a top-notch online casino and sportsbook that offers a wide range of games, promotions, and features. With its user-friendly interface, high-quality games, and competitive bonuses, it’s no wonder why 1win has become a favorite among players in Bangladesh and beyond.

Why Choose 1win Casino and Sportsbook Bangladesh?

When it comes to online gaming, Bangladesh has a plethora of options to choose from. However, not all platforms are created equal, and 1win casino and sportsbook stands out from the crowd. Here are some reasons why you should choose 1win:

Wide Range of Games and Sports

1win offers an impressive collection of games, including slots, table games, and live dealer games. You can also bet on various sports, including cricket, football, and more. With 1win, you can enjoy a wide range of gaming options, ensuring that you’ll never get bored.

  • Over 1,000 games to choose from
  • Live dealer games for a more immersive experience
  • Bet on various sports, including cricket, football, and more

Convenient and Secure

1win prioritizes security and convenience, ensuring that your gaming experience is seamless and stress-free. The platform is protected by the latest SSL encryption, and the 1win app is available for download, making it easy to access your account on-the-go.

  • SSL encryption for secure transactions
  • 1win app available for download
  • Easy login and registration process

Competitive Bonuses and Promotions

1win offers a range of bonuses and promotions to help you get started and keep you coming back for more. From welcome bonuses to loyalty rewards, there’s something for everyone.

  • Welcome bonus for new players
  • Loyalty rewards for regular players
  • Regular promotions and tournaments

24/7 Customer Support

At 1win, customer support is a top priority. The platform offers 24/7 support, ensuring that you can get help whenever you need it.

  • 24/7 customer support
  • Multilingual support team
  • Live chat and email support

Conclusion

In conclusion, 1win casino and sportsbook offers a unique combination of games, convenience, and security, making it the perfect choice for Bangladeshi players. With its wide range of games, competitive bonuses, and 24/7 customer support, 1win is the ultimate destination for online gaming in Bangladesh. So, why choose 1win? The answer is simple – it’s the best choice for a seamless and enjoyable gaming experience.

Free Spins and Sports Betting Promotions at 1win Casino and Sportsbook

1win is a popular online casino and sportsbook that offers a wide range of promotions and bonuses to its customers. One of the most attractive features of 1win is its free spins and sports betting promotions. In this article, we will explore the different types of free spins and sports betting promotions available at 1win and how to take advantage of them.

Free Spins Promotions

1win offers a variety of free spins promotions to its customers. These promotions can be used to play popular slot games such as Book of Gold, Lucky Money, and Aviator. To get free spins, customers can use the 1win app or website to log in and claim the promotion. The free spins can be used to play a variety of games, including slots, table games, and live dealer games.

One of the most popular free spins promotions at 1win is the “Welcome Package” promotion. This promotion offers new customers a 100% match bonus up to 100,000 BDT, as well as 50 free spins. To claim this promotion, customers must make a minimum deposit of 1,000 BDT and use the promo code “WELCOME100”.

Another popular free spins promotion at 1win is the “Daily Free Spins” promotion. This promotion offers customers a set number of free spins every day, which can be used to play a variety of games. To claim this promotion, customers must log in to their 1win account and claim the promotion.

Sports Betting Promotions

1win also offers a range of sports betting promotions to its customers. These promotions can be used to bet on a variety of sports, including football, cricket, and tennis. One of the most popular sports betting promotions at 1win is the “Acca Insurance” promotion. This promotion offers customers a 100% refund of their stake if their accumulator bet loses.

Another popular sports betting promotion at 1win is the “Double Winnings” promotion. This promotion offers customers double their winnings if they bet on a specific game or event. To claim this promotion, customers must log in to their 1win account and claim the promotion.

In conclusion, 1win offers a range of free spins and sports betting promotions to its customers. These promotions can be used to play a variety of games and bet on a range of sports. To take advantage of these promotions, customers can use the 1win app or website to log in and claim the promotion.

How to Register and Start Playing at 1win Casino and Sportsbook

To start playing at 1win Casino and Sportsbook, you need to go through a simple registration process. Here’s a step-by-step guide to help you get started:

First, open the 1win website or download the 1win app from the official website. If you’re using a mobile device, you can download the 1win app for Android or iOS. Once you’ve downloaded the app, install it and launch it.

Next, click on the “Register” button, which is usually located at the top right corner of the screen. You’ll be taken to a registration form, where you’ll need to provide some basic information, including your name, email address, phone number, and password.

Make sure to fill in all the required fields accurately, as this will help you to avoid any issues with your account in the future. Once you’ve completed the registration form, click on the “Register” button to submit your information.

After submitting your registration, you’ll receive an email with a verification link. Click on this link to activate your account. This is an important step, as it will help to ensure that your account is secure and protected.

Once your account is activated, you can log in to 1win using your email and password. You can do this by clicking on the “Login” button, which is usually located at the top right corner of the screen.

After logging in, you’ll be taken to your account dashboard, where you can access all the features and services offered by 1win. You can deposit funds, place bets, and play games, all from one convenient location.

To make a deposit, click on the “Deposit” button, which is usually located at the top right corner of the screen. You can choose from a variety of payment methods, including credit cards, e-wallets, and bank transfers. Enter the amount you want to deposit, and follow the prompts to complete the transaction.

Once your deposit is processed, you can start playing your favorite games or placing bets. 1win offers a wide range of games, including slots, table games, and live dealer games. You can also place bets on sports, including football, basketball, tennis, and more.

To place a bet, click on the “Sports” or “Casino” tab, depending on your preference. Then, select the game or event you want to bet on, and choose your bet type. You can place a single bet or combine multiple bets to create a parlay.

That’s it! With these simple steps, you can start playing at 1win Casino and Sportsbook. Remember to always gamble responsibly and within your means. Good luck!

Design and Develop by Ovatheme